package com.iot.ruler.caster;

/**
 * 发布者
 *
 * @author lzb
 * @Date 2023/2/17 13:56
 */
public abstract class RulerPublisher {
    /**
     * 发布事件，只有SimpleRulerSubject的监听者才能收到数据
     *
     * @param source 发布的数据
     */
    public void publish(Object source) {
        RulerCaster.getInstance().publish(source);
    }

    /**
     * 发布事件
     *
     * @param subject 指定监听对象
     * @param <T>     任意数据类型
     */
    public <T> void publish(RulerSubject<T> subject) {
        RulerCaster.getInstance().publish(subject);
    }
}
